package com.topcent.tioxyc.pojo;

/**
 * @author: 陈百万
 * @date: 2025/7/11 11:45
 * @Description: 收款单数据库表结构
 */
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;
import java.util.List;
@Data
@TableName(value = "ZZ_business_process")
public class BusinessProcess {
    // 流程状态：2表示流程手动结束；1表示流程已完成；0表示流程进行中
    private String flowState;

    // 单据信息
    private String documentNumber; // 单据编号
    private Date documentDate; // 单据日期
    private Date postingTime; // 过账时间

    // 部门与人员信息
    private String applicationDepartment; // 申请部门
    private String applicant; // 申请人
    private String attributedSalesman; // 归属业务员
    private String finalReviewer; // 最终审核人

    // 币种与汇率信息
    private String accountingOrgCurrency; // 核算组织币种
    private String selectedCustomer; // 选择客户
    private String selectedCurrency; // 选择币种
    private String customerNumber; // 客户编号
    private String customerName; // 客户名称
    private String payerName; // 付款人名称
    private String settlementMethodDeposit; // 结算方式【定金】
    private String settlementMethodSupplementalDeposit; // 结算方式【补充定金】
    private String settlementMethodBalance; // 结算方式【余款】
    private String currency; // 币种
    private double exchangeRate; // 汇率

    // 金额信息
    private double totalReceiptAmount; // 收款总金额
    private String receiptContent; // 收款内容
    private double freightCost; // 运费
    private String freightRelatedOrder; // 运费关联订单
    private double moldCost; // 模具费
    private double otherCosts; // 其他费用
    private String moldRelatedOrderOrMaterialCode; // 模具费关联订单/物料编码
    private double customerDepositUnrelatedOrder; // 客户预存款【未关联订单】
    private double orderAdvancePayment; // 订单预收款
    private double orderBalancePayment; // 订单尾款
    private double orderAdvancePaymentPercentage; // 订单签订预付款比例（百分比）

    // 审批与时间信息
    private Date lastApprovalModificationDate; // 最后审批修改日期
    private String creditInsuranceCustomer; // 信保客户
    private String summary; // 摘要

    // 订单金额累计信息
    private double actualHistoricalAdvancePayment; // 订单实际历史预收款
    private double actualHistoricalBalancePayment; // 订单实际历史尾款
    private double actualAccumulatedAdvancePayment; // 订单实际累计预收款
    private double actualAccumulatedBalancePayment; // 订单实际累计尾款
    private double totalOrderAmountAdvance; // 订单总金额【预付】
    private double totalOrderAmountBalance; // 订单总金额【尾款】

    // 费用类型
    private String costTypeOrderAdvance; // 费用类型【订单预付款】
    private String costTypeFreightMold; // 费用类型【运费、模具费】
    private String costTypeOrderBalance; // 费用类型【订单尾款】
    private String costTypeTransferFee; // 费用类型【转账手续费】
    private double transferFee; // 转账手续费
    private double actualBankReceipt; // 银行实际到账

    // 财务相关
    private String selectedCashFlow; // 选择现金流量
    private String reasonCode; // 原因代码
    private String costAttributedDepartment; // 费用归属部门
    private String attributedDepartment; // 归属部门
    private String companyCode; // 公司代码
    private String costCenter; // 成本中心
    private String companyName; // 公司名称

    // 银行信息
    private String bankAccount; // 银行科目
    private String bankName; // 开户行
    private String bankAccountNumber; // 开户行账户
    private String bankAccountName; // 开户行账户名称
    private String journalEntryNumber; // 日记账分录编号
    private String selectedCollectingBank; // 选择代收银行
    private String collectingBankAccount; // 代收款银行账户
    private String collectingBankAccountNumber; // 代收款银行账户编号

    // 时间信息
    private Date approvalCompletionDate; // 审核完成日期
    private String singleLineText; // 单行文本
    private Date submissionTime; // 提交时间
    private Date updateTime; // 修改时间
}
